import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


def line_chart():
    """
    多折线图
    :return:
    """
    # 解决中文乱码
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # x轴的刻度线向外显示
    plt.rcParams['xtick.direction'] = 'out'
    # y轴的刻度线向内显示
    plt.rcParams['ytick.direction'] = 'in'

    """
    数据准备     
    """
    data = pd.DataFrame(data=[
        ['x1', 100, 120, 140],
        ['x2', 110, 100, 120],
        ['x3', 120, 110, 110],
    ], columns=["x-data", "y-data-1", "y-data-2", "y-data-3"])

    # 多折线图
    x = data['x-data']
    y1 = data['y-data-1']
    y2 = data['y-data-2']
    y3 = data['y-data-3']

    """
    mfc：标记的颜色。
    ms：标记的大小。
    alpha：透明度，设置该参数可以改变颜色的深浅。
    """
    plt.plot(x, y1, label='y-data1', color='r', marker='p')
    plt.plot(x, y2, label='y-data2', color='g', marker='.', mfc='r', ms=8, alpha=0.7)
    plt.plot(x, y3, label='y-data3', color='b', linestyle='-.', marker='*')

    # 显示y轴网格
    plt.title('语数外成绩大比拼', fontsize='18')
    # 显示x轴、y轴名称
    plt.ylabel('Y轴名称')
    plt.xlabel('X轴名称')
    # 显示
    plt.grid(axis='y')
    plt.yticks(range(50, 150, 10))
    plt.legend(['y-data1', 'y-data2', 'y-data3'])
    plt.show()


if __name__ == '__main__':
    line_chart()
